package it.crosato.stage.shared.objects;

import java.util.Vector;

public class InvariantsGroup {

	private Vector<Vector<Integer>> invariants = new Vector<Vector<Integer>>();
	
	public InvariantsGroup() {
		
	}
	
	public InvariantsGroup(Vector<Vector<Integer>> invariants) {
		this.invariants = invariants;
	}
	
	/**
	 * Aggiunge in invariante in coda
	 * @param invariant l'invariante da aggiungere
	 */
	public void addInvariant(Vector<Integer> invariant) {
		invariants.add(invariant);
	}
	
	/**
	 * Rimuove un invariante
	 * @param i l'indice dell'invariante da rimuovere
	 */
	public void removeInvariant(int i) {
		if (i >= 0 && i < invariants.size()) {
			invariants.remove(i);
		}
	}
	
	/**
	 * Ritorna l'i-esimo invarainte.
	 * @param i indice dell'invariante da ritornare
	 * @return l'i-esimo invariante o il valore nullo se l'indice non è corretto
	 */
	public Vector<Integer> getInvariant(int i) {
		if (i >= 0 && i < invariants.size()) {
			return invariants.get(i);
		}
		else {
			return null;
		}
	}
	
	/**
	 * Ritorna il numero di invarianti
	 * @return
	 */
	public int getNumberOfInvariants() {
		return invariants.size();
	}
	
	public Vector<Vector<Integer>> getInvariants() {
		return invariants;
	}
	public void setInvariants(Vector<Vector<Integer>> invariants) {
		this.invariants = invariants;
	}
}
